home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / language / isetl.arc / curry.t < prev    next >
Text File  |  1987-08-20  |  564b  |  34 lines

  1. $ curry(f)(x)(y) = f(x,y)
  2.  
  3.        curry := func(f);
  4.             return func(x);
  5.                    return func(y);
  6.                       return f(x,y);
  7.                       end;
  8.                end;
  9.         end;
  10.  
  11. $ trans(f)(x,y) = f(y,x)
  12.  
  13.        trans := func(f);
  14.             return func(x,y);
  15.                    return f(y,x);
  16.                end;
  17.         end;
  18.  
  19.    add := func(x,y); return x+y; end;
  20.    sub := func(x,y); return x-y; end;
  21.  
  22.    inc := curry(add)(1);
  23.    dec := curry(trans(sub))(1);
  24.  
  25. ["inc(10) = ", inc(10)];
  26. ["dec(10) = ", dec(10)];
  27.  
  28.  
  29.    compose := func(f,g);
  30.           return func(x); return f(g(x)); end;
  31.           end;
  32.  
  33. compose(dec,inc) (13);
  34.